<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>106_闭包简介</title>
		<script>
			/* 
			创建一个函数，第一次调用时打印1，第二次调用打印2，以此类推。
			
			可以利用函数，来隐藏不希望被外部访问到的变量。
			
			闭包:
				闭包就是能访问到外部函数作用域中变量的函数。
				什么时候使用:
					当我们需要隐藏一些不希望被别人访问的内容时就可以使用闭包。
				构成闭包的要件:
					1.函数的嵌套；
					2.内部函数要引用外部函数中的变量；
					3.内部函数要作为返回值返回。
			 */
			function outter() {
				let num = 0;// 位于函数作用域中，外部访问到该变量。
				return () => { //这就是一个闭包。
					num++;
					console.log(num);
				}
			}
			
			const ret=outter();
			ret();
			ret();
			ret();
		</script>
	</head>
	<body>
	</body>
</html>